package com.fwj.user.api.rbac;

import com.alibaba.fastjson.JSONObject;
import com.fwj.user.entity.rbac.role.RBACRelationUserAndRole;
import com.fwj.user.entity.user.UserBaseInfo;
import com.fwj.user.model.rbac.role.UserAndRoleVo;

/**
 * @Author: fwj
 * @Data: 2022/5/1 17:05
 * @Version 1.0
 * @Description:
 */


public interface RBACService {

    /**
     * @Description TODO 为用户绑定角色
     * @Param: jsonObject
     * @Author fwj
     * @Createtime 2022/5/1
     */
    JSONObject bindRoleForUser(UserAndRoleVo userAndRoleVo, UserBaseInfo userBaseInfo);

    /**
     * @Description TODO 查询用户具有的角色列表
     * @Param: jsonObject
     * @Author fwj
     * @Createtime 2022/5/1
     */
    JSONObject queryRoleListByUser(UserBaseInfo userBaseInfo);

    /**
     * @Description TODO 查询用户和角色是否关联
     * @Param: jsonObject
     * @Author fwj
     * @Createtime 2022/5/1
     */
    JSONObject queryRelationUserAndRole(UserAndRoleVo userAndRoleVo);

    /**
     * @Description TODO 查询用户和权限是否关联
     * @Param: jsonObject
     * @Author fwj
     * @Createtime 2022/5/1
     */
    JSONObject queryRelationUserAndAuth(Long userNumber, String authNumber);

    /**
     * @Description TODO 为用户解绑角色
     * @Param: jsonObject
     * @Author fwj
     * @Createtime 2022/5/1
     */
    JSONObject unBindRoleWithUser(UserAndRoleVo userAndRoleVo);

    /**
     * @Description TODO 查询角色关联权限列表
     * @Param: jsonObject
     * @Author fwj
     * @Createtime 2022/5/1
     */
    JSONObject queryRoleAssociatedPermissionsList();
}
